import { useUserStore } from '@/stores/modules/user'

/**
 * 权限检查工具函数
 */

/**
 * 检查用户是否具有指定角色
 * @param role 角色代码 (admin, coach, member)
 * @returns boolean
 */
export function hasRole(role: string): boolean {
  const userStore = useUserStore()
  return userStore.userInfo?.role === role
}

/**
 * 检查用户是否为管理员
 * @returns boolean
 */
export function isAdmin(): boolean {
  return hasRole('admin')
}

/**
 * 检查用户是否为教练
 * @returns boolean
 */
export function isCoach(): boolean {
  return hasRole('coach')
}

/**
 * 检查用户是否为普通会员
 * @returns boolean
 */
export function isMember(): boolean {
  return hasRole('member')
}

/**
 * 检查用户是否具有指定权限
 * 注意：当前后端CheckPermission接口未完全实现，暂时返回true
 * @param permission 权限代码
 * @returns Promise<boolean>
 */
export async function hasPermission(permission: string): Promise<boolean> {
  // TODO: 调用后端权限检查接口
  // 由于后端CheckPermission接口未完全实现，暂时返回true
  console.warn('权限检查功能尚未完全实现')
  return true
}

/**
 * 检查用户是否已登录
 * @returns boolean
 */
export function isAuthenticated(): boolean {
  const userStore = useUserStore()
  return userStore.isLoggedIn
}

export default {
  hasRole,
  isAdmin,
  isCoach,
  isMember,
  hasPermission,
  isAuthenticated
}
